草庐IT

C++ std::system_error 与 common catch std::exception block 的用法

全部标签

windows - 以 SYSTEM 用户身份检测关机

我有一个由服务启动的应用程序。该应用程序没有用户界面,它包含一个DataModule和一个在循环中调用Forms.Application.HandleMessage的TMyApplication实现(如SvcMgr.TServiceApplication)。我连接了MainWindow以记录Forms.Application的隐藏窗口收到的任何消息。如果我手动启动应用程序以便它在我的用户帐户上运行,我会在注销/关闭时在Forms.Application的隐藏窗口中收到WM_QUERYENDSESSION和WM_ENDSESSION消息。如果我使用该服务启动我的应用程序,该应用程序将在S

windows - 从 "chinese Windows"发送 std::wstring 到 "arabic Windows"

我有一个套接字,我通过它发送序列化的std::wstring,例如,从中文版的Windows到使用阿拉伯语UI的Unix系统。我不明白我的Unix系统(或其他任何系统)如何知道这些std::wstring是中文的,我没有看到“代码页”(又名国家语言?)存储在std中::wstring,我是否必须将自己与可能的每个std::wstring的代码页相关联?我肯定错过了一些东西,因为这看起来是我们相互联系的世界中的一个基本问题......谢谢, 最佳答案 wstring的目的是允许整个Unicode字符集,包括中文和阿拉伯语以及人类已知的

python - os.path.exists 无法识别 C :\Windows\system32\drivers 下的子目录

谁能告诉我为什么会出现这种行为:C:\...>dirC:\Windows\System32\drivers\subdir\0xDEADBEEF.008VolumeindriveCisWin7HPx64VolumeSerialNumberis04BF-EE2EDirectoryofC:\Windows\System32\drivers\subdir\0xDEADBEEF.00808/11/201104:21PM.08/11/201104:21PM..0File(s)0bytes2Dir(s)11,581,788,160bytesfreeC:\...>C:\Python27\python.

C++ 将数据从 std::string 复制到 std::wstring

假设我有一个std::string,但数据是用UTF-16编码的。我如何才能将该数据复制到std::wstring中,而根本不修改数据?此外,我不能只使用std::wstring,因为我正在在线检索文本文件并检查Content-Typeheader字段以确定编码。但是使用std::string来接收数据。 最佳答案 std::wstringPackUTF16(conststd::string&input){if(input.size()%2!=0)throwstd::invalid_argument("inputlengthmust

mysql - 193 : %1 is not a valid Win32 application error with Ruby (1. 9.3) 在 Windows 7 上使用 MySQL(5.5) 的 Rails(3.2.3)

我似乎无法运行配置为MySQL的铁路应用程序。当我运行项目时,出现以下错误:193:%1不是有效的Win32应用程序。-C:/Ruby193/lib/ruby/gems/1.9.1/gems/mysql-2.8.1-x86-mingw32/lib/1.9/mysql_api.so我注意到其他人已经解决了这个问题,但我没有找到任何适合我的解决方案。到目前为止,这是我尝试过的:复制libmysql.dll到rubybin文件夹尝试过旧版本的MySQL(5.0)在regedit上检查MySQL的ImagePath有人可以在这里提供指导吗?这只是一个失败的原因吗?使用Linux或其他版本的Ru

c++ - 按值传递 std::function<bool (int)>

我是想曝光typedefstd::functionFilter;这是的一部分#include这样用户就可以创建过滤器并将其传递到我的组件中进行处理。该要求要求处理不能在模板函数中完成。我知道在接口(interface)上使用STL不是一个好的做法,因为Filter类型的大小取决于STL实现。除了原始函数指针或由模板函数接收的仿函数,我还有哪些替代选择。 最佳答案 大小在这里不是很重要,但如果使用您的库的某个人使用不同的STL实现,那么您的代码将无法使用,那么另一种选择是什么?我将为此使用一个接口(interface)(纯虚拟类):s

windows - System.StackOverflow 错误

我正在对一个用VB.net编写的现有Windows应用商店应用程序进行更新。我制作了一个共享MsgBox()函数和一个“非共享”函数(将从共享函数运行)。我需要共享的,因为我也从另一个类(class)运行它。完整的错误代码:Anunhandledexceptionoftype'System.StackOverflowException'occurredinCalculatorWorld.exeTheprogram'[4360]CalculatorWorld.exe:Managed(v4.0.30319)'hasexitedwithcode-2147023895(0x800703e9)这

windows - 无法打开 VB 项目,无法加载错误 "C:\windows\system32\mscomctl.ocx"

我有一个VB项目能够正常工作,但现在当我打开该项目时,我收到了mscomctl.ocx错误。我已经重新注册了ocx,但仍然无法加载项目。我该如何解决这个问题? 最佳答案 我在Windows764位环境中打开项目时遇到了这个问题,它在winXP机器上工作正常。我之前在项目文件中做了一个非常简单的更改,上面写着Object={831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.1#0;MSCOMCTL.OCX我将2.1更改为2.0因为我在很多论坛上都看到过这样的情况,而且效果很好。VBP文件中的更新引用是Ob

windows - System32 是 Windows 中的当前工作目录?

刚刚注意到windows下system32是当前工作目录(而不是执行文件所在的目录)。为什么?总是这样吗?这是故意的吗? 最佳答案 当前目录设置为进程启动的一部分。进程启动后,它可以随意更改其当前目录。当前目录被指定为CreateProcess的参数,以及用于创建进程的任何其他类似API函数。为新进程的当前目录传递NULL是很常见的。在这种情况下,将使用父进程的当前目录。所以,看看你的具体问题:Whyisthatso?如果您的进程的当前目录是system32,那是因为无论启动该进程的是什么,或者您的进程选择了它。Isitalways

C++: "error C4430: missing type specifier - int assumed"对于构造函数和析构函数的无效声明

我有这个CResources类声明,我得到这个错误"errorC4430:missingtypespecifier-intassumed"#include#includeconstintR_NUMBER=5;typedefenum{M,}OBJECT_ENUM;typedefenum{FILE_O,}RESOURCE_ENUM;typedefstruct_resourcesMapping{CBufferapiBuffer;intObjectIndex;};classCResources{intrCount;int*resources;public:CResources(int);~CR